function getData() {// 假设这个会耗时
  return 1
}

// async function getAsyncData() {
//   return 1
// }
//上面的函数可以翻译成下面的函数用Promise的话，
function getAsyncData() {
  return Promise.resolve().then(() => 1)// .then会返回一个状态是准备的Promise对象，既不成功也不失败
}



// async function getPromise() {
//   return new Promise((resolve, reject) => {
//     resolve(1)
//   })
// }

//上面代码可以翻译成下面，在v8执行的时候
function getPromise() {
  return Promise.resolve().then(() => {
    return new Promise((resolve, reject) => {
      resolve(1)
    })
  })
  
}

async function test() {
  let a = 2
  let c = 1
  await getData()// 在v8执行时相当于放在了await返回的promise对象中
  let d = 3
  await getPromise()
  let e = 4
  await getAsyncData()
  return 2
}
//上面代码翻译成Promise是下面这样
// function test() {
//   return Promise.resolve().then(() => {
//     let a = 2
//     let c = 1
//     return getData()
//   }).then(() => {
//     let d = 3
//     return getPromise()
//   }).then(() => {
//     let e = 4
//     return getAsyncData()
//   }).then(() => {
//     return2
//   })
// }